package file

import (
	"bufio"
	"fmt"
	"miomp-terminal-suite/backend/log"
	"os"
	"strings"
)

// TextReadFromFile 从文件读取值 不换行
func TextReadFromFile(srcPath string) (md5Value string, err error) {
	// 打开文件
	file, err := os.Open(srcPath)
	if err != nil {
		fmt.Printf("无法打开文件: %v\n", err)
		return
	}
	defer func(file *os.File) {
		err := file.Close()
		if err != nil {
			log.LOG.Error("打开文件时出错:", log.U.ErrorFiled(err))
		}
	}(file)

	// 使用 strings.Builder 来存储文件内容
	var fileContent strings.Builder

	// 使用 bufio.Scanner 逐行读取文件
	scanner := bufio.NewScanner(file)
	for scanner.Scan() {
		// 将每一行添加到 strings.Builder 中
		fileContent.WriteString(scanner.Text())
	}

	// 检查读取过程中是否出现错误
	if err := scanner.Err(); err != nil {
		log.LOG.Error("读取文件时出错:", log.U.ErrorFiled(err))
	}

	// 将文件内容存储到一个字符串变量中
	text := fileContent.String()

	return text, nil
}
